<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="LlRzF" id="LlRzF"><span data-lake-id="u3823d062" id="u3823d062">典型回答</span></h1>
  <p data-lake-id="ud52441e8" id="ud52441e8"><br></p>
  <p data-lake-id="u2f946b71" id="u2f946b71"><span data-lake-id="u0c864865" id="u0c864865">设计模式是在软件开发过程中经常遇到的问题的</span><strong><span data-lake-id="uffe51b7c" id="uffe51b7c">通用解决方案</span></strong><span data-lake-id="u9c0e3340" id="u9c0e3340">。它们是经过无数的验证和经验积累的</span><strong><span data-lake-id="udd295e0d" id="udd295e0d">最佳实践。</span></strong></p>
  <p data-lake-id="u87261bd2" id="u87261bd2"><span data-lake-id="u0dfffabe" id="u0dfffabe" class="lake-fontsize-12" style="color: rgb(55, 65, 81); background-color: rgb(247, 247, 248)">​</span><br></p>
  <p data-lake-id="uf0bd7e5f" id="uf0bd7e5f"><span data-lake-id="u38f4727f" id="u38f4727f">首先，设计模式是一些前人经验的一些总结，所以，当遇到相似的问题的时候，我们可以直接借鉴好的设计模式来实现，这样可以大大</span><strong><span data-lake-id="u8c79f24f" id="u8c79f24f">降低我们的试错成本和迭代成本</span></strong><span data-lake-id="uf6138070" id="uf6138070">。可以大大</span><strong><span data-lake-id="ud41983d4" id="ud41983d4">提升我们的开发速度</span></strong><span data-lake-id="uf8555382" id="uf8555382">。</span></p>
  <p data-lake-id="u90437488" id="u90437488"><span data-lake-id="u884d1495" id="u884d1495">​</span><br></p>
  <blockquote data-lake-id="uc8a3585a" id="uc8a3585a">
   <p data-lake-id="ubc11609c" id="ubc11609c"><span data-lake-id="u51826688" id="u51826688">不要认为只有23种，只要</span><span data-lake-id="u4e3e82ca" id="u4e3e82ca" style="color: rgb(18, 18, 18)">是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结都是软件设计模式的。比如说MVC</span></p>
  </blockquote>
  <p data-lake-id="ua505517b" id="ua505517b"><span data-lake-id="u6ee4814e" id="u6ee4814e">​</span><br></p>
  <p data-lake-id="ue533bdab" id="ue533bdab"><span data-lake-id="ud45d26d0" id="ud45d26d0">而且，设计模式都是遵守了很多设计原则的，这些原则</span><strong><span data-lake-id="u1b06fc3f" id="u1b06fc3f">可以帮助我们大大提升代码的可重用性、可维护性和可扩展性等。</span></strong></p>
  <p data-lake-id="u4d1fc0f7" id="u4d1fc0f7"><span data-lake-id="u3e025f6c" id="u3e025f6c">​</span><br></p>
  <p data-lake-id="ucaa049a5" id="ucaa049a5"><span data-lake-id="uf871b2f9" id="uf871b2f9">​</span><br></p>
  <p data-lake-id="u046f7df4" id="u046f7df4"><br></p>
  <p data-lake-id="u0b83895c" id="u0b83895c"><br></p>
  <p data-lake-id="u6fd5edaa" id="u6fd5edaa"><span data-lake-id="u98157f7f" id="u98157f7f">设计模式通过使用松耦合的对象之间的交互，使系统更容易进行扩展和修改。通过引入抽象层和接口，可以将变化的部分隔离出来，而不影响整个系统的其他部分。提高了代码的</span><strong><span data-lake-id="u6b4c9e87" id="u6b4c9e87">可扩展性</span></strong><span data-lake-id="ud5231572" id="ud5231572">。</span></p>
  <p data-lake-id="u176d0e4d" id="u176d0e4d"><span data-lake-id="ucd745db1" id="ucd745db1">​</span><br></p>
  <p data-lake-id="u2e53cec1" id="u2e53cec1"><span data-lake-id="u3aca9540" id="u3aca9540">还有一点比较重要，那就是设计模式其实也是一种</span><strong><span data-lake-id="u9c1db6d1" id="u9c1db6d1">通用语言。</span></strong><span data-lake-id="u336ecf73" id="u336ecf73">他使得团队成员之间交流更加的顺畅。当我们提到单例、模板、策略、责任链，大家都知道是怎么回事儿。</span></p>
  <p data-lake-id="u74b01b33" id="u74b01b33"><span data-lake-id="u253a8a84" id="u253a8a84">​</span><br></p>
  <p data-lake-id="u8162598e" id="u8162598e"><span data-lake-id="ube2df0b7" id="ube2df0b7">可以很快速的就get到其他人要说的意思，不仅</span><strong><span data-lake-id="u44141b99" id="u44141b99">可以提升沟通效率</span></strong><span data-lake-id="uaeda43eb" id="uaeda43eb">，还能</span><strong><span data-lake-id="u266f8a95" id="u266f8a95">降低后续代码维护中的出错概率</span></strong><span data-lake-id="ucdc6d0b5" id="ucdc6d0b5">。</span></p>
 </body>
</html>